package org.example.dbcompare.model;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 列类型不匹配信息
 * @author wuyong
 * @date 2025/10/22
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ColumnMismatch {
    /**
     * 列名
     */
    private String columnName;
    
    /**
     * 源数据库中的列类型
     */
    private String sourceType;
    
    /**
     * 目标数据库中的列类型
     */
    private String targetType;
    
    /**
     * 源数据库中的列长度
     */
    private Long sourceLength;
    
    /**
     * 目标数据库中的列长度
     */
    private Long targetLength;
    
    /**
     * 源数据库中的列精度
     */
    private Integer sourcePrecision;
    
    /**
     * 目标数据库中的列精度
     */
    private Integer targetPrecision;
    
    /**
     * 源数据库中的列小数位数
     */
    private Integer sourceScale;
    
    /**
     * 目标数据库中的列小数位数
     */
    private Integer targetScale;
    
    /**
     * 源数据库中的列是否允许NULL
     */
    private Boolean sourceNullable;
    
    /**
     * 目标数据库中的列是否允许NULL
     */
    private Boolean targetNullable;
    
    /**
     * 源数据库中的列默认值
     */
    private String sourceDefaultValue;
    
    /**
     * 目标数据库中的列默认值
     */
    private String targetDefaultValue;
}
